﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Tibet.GUI.Contrato;
using Tibet.Logica.Comandos;
using Tibet.Logica.FabricaLogica;
using Tibet.Logica.Comandos.ComandoAdministracionProyecto;
using Tibet.Entidades;
using Logica.Comandos.ComandoAdministracionProyecto;
using System.Web.UI.WebControls;

namespace Tibet.GUI.Presentador
{
    public class PresentadorConsultarProyecto
    {
        private IConsultarProyecto _vista;
        List<Entidad> listaProyecto = new List<Entidad>();
        List<Entidad> listaDesarrolladores = new List<Entidad>();
        Entidad proyecto = new Entidad();
        public PresentadorConsultarProyecto(IConsultarProyecto vista)
        {
            _vista = vista;
        }

        public void ConsultarProyectosInactivos()
        {
            Comando comando = FabricaComandoProyecto.ObtenerComandoConsultarProyectosInactivos();
            (comando as ConsultarProyectosInactivos).Ejecutar();
            listaProyecto = comando.ListaEntidad;
            _vista.GridViewConsultarProyecto.DataSource = listaProyecto;
            _vista.GridViewConsultarProyecto.DataBind();
            
            

        }

        public void ConsultarProyectoPorId(int idProyecto)
        {
            Comando comando = FabricaComandoProyecto.ObtenerComandoConsultarProyectosPorId();
            comando.Id = idProyecto;
            (comando as ConsultarProyectoPorId).Ejecutar();
            proyecto = comando.Entidad;
            _vista.NombreProyecto.Text = (proyecto as Proyecto).Nombre;
            _vista.Dias.Text = (proyecto as Proyecto).Dias.ToString();
            _vista.RutaProyecto.Text = (proyecto as Proyecto).Ruta;
            


        }


        public void ConsultarClientePorId(int idCliente)
        {
            Comando comando = FabricaComandoProyecto.ObtenerComandoConsultarClientePorId();
            comando.Id = idCliente;
            (comando as ConsultarClientePorId).Ejecutar();
            proyecto = comando.Entidad;
            _vista.NombreCliente.Text = (proyecto as Cliente).Nombre;
        }

        public void ConsultarPerfilMetricaPorId(int id)
        {
            Comando comando = FabricaComandoProyecto.ObtenerComandoConsultarPerfilMetricaPorId();
            comando.Id = id;
            (comando as ConsultarPerfilMetricaPorId).Ejecutar();
            proyecto = comando.Entidad;
            _vista.NombrePerfilMetricas.Text = (proyecto as PerfilMetrica).NombrePerfilMetrica;
        }


        public void ConsultarPerfilReglaPorId(int id)
        {
            Comando comando = FabricaComandoProyecto.ObtenerComandoConsultarPerfilReglaPorId();
            comando.Id = id;
            (comando as ConsultarPerfilReglaPorId).Ejecutar();
            proyecto = comando.Entidad;
            _vista.NombrePerfilReglas.Text = (proyecto as Perfil_Regla).NombrePerfilRegla;
        }

        public void ConsultarTodosDesarrolladores(int id)
        {
            Comando comando = FabricaComandoProyecto.ObtenerComandoConsultarDesarrollador();
            comando.Id = id;
            (comando as ConsularDesarrolladorPorProyecto).Ejecutar();
            listaDesarrolladores = comando.ListaEntidad;

            foreach (Entidad desarrollador in listaDesarrolladores)
            {
                Label nombreDesarrollador = new Label();
                Label nombreRol = new Label();
                nombreDesarrollador.Width = 200;
                nombreDesarrollador.Height = 20;
                nombreRol.Width = 100;
                nombreRol.Height = 20;
                nombreDesarrollador.Text = " - "+(desarrollador as Tibet.Entidades.Usuario).Nombre;
                nombreRol.Text = " - " + (desarrollador as Tibet.Entidades.Usuario).Rol.NombreRol;

                _vista.PanelDesarrolladores.Controls.Add(nombreDesarrollador);
                _vista.PanelDesarrolladores.Controls.Add(nombreRol);
            }
            



        }
    }
}